package com.ruoyi.common.utils.uuid;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

/**
 * ID生成器工具类
 *
 * @author ruoyi
 */
public class IdUtils {
    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUUID() {
        return UUID.randomUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUUID() {
        return UUID.randomUUID().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUUID() {
        return UUID.fastUUID().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUUID() {
        return UUID.fastUUID().toString(true);
    }

    /**
     * 生成七牛云的文件名字的uuid
     *
     * @return
     */
    public static String generateQiNiuYunUUID() {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();

        // 创建一个DateTimeFormatter对象，指定日期格式为"YYYY-MM-dd"
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        // 使用formatter将LocalDate对象格式化为字符串
        String formattedDate = currentDate.format(formatter);

        return formattedDate + "_" + randomUUID();
    }
}
